package com.huitone.smspfm.redis;

import java.util.List;

public interface IListOpts {

	/**
	 * 入栈操作
	 * @param key 列表名
	 * @param value 列表值
	 */
	long push(String key, String value);
	
	/**
	 * 出栈操作
	 * @param key
	 */
	String pop(String key);
	
	/**
	 * 入队操作
	 * @param key
	 * @param value
	 * @return
	 */
	long in(String key, String value);
	
	/**
	 * 出队操作
	 * @param key
	 * @return
	 */
	String out(String key);

	/**
	 * 队列长度
	 * @param key
	 * @return
	 */
	long length(String key);
	
	/**
	 * 范围检索
	 * @param key
	 * @param start
	 * @param end
	 * @return
	 */
	List<String> range(String key, long start, long end);
	
	/** 
     * 移除 
     * @param key 
     * @param i 
     * @param value 
     */  
    void remove(String key, long i, String value);
  
    /** 
     * 检索 
     * @param key 
     * @param index 
     * @return 
     */  
    String index(String key, long index);  
  
    /** 
     * 置值 
     * @param key 
     * @param index 
     * @param value 
     */  
    void set(String key, long index, String value); 
  
    /** 
     * 裁剪 
     * @param key 
     * @param start 
     * @param end 
     */  
    void trim(String key, long start, int end);
}
